有機ELディスプレイ SSD1331の練習
RGB OLEDで遊ぶ (1) - SSD1331
SSD1331データシート
上記を参考に小型有機ELディスプレイSSD1331で遊んでみる。
ピン
GND
VCC
SCL (Serial Clock)、D0 ?
シリアルクロック
SDA (Serial Data)、D1 ?
シリアルクロックのライジングエッジの度にD7、D6、D5 ... D0と読み込む
RES#
リセット信号
lowにするとリセット
基本はhighにしておくこと
DC
high→データとして解釈
low→コマンドとして解釈
CS (Chip Select)
シリアルインターフェースとタイミング
https://gyazo.com/118af04bacec38c189cffc108d155442
ULX3Sのクロックは25MHz
1sec = 1000ms = 1,000,000ns
1MHzの1周期が1ns
25MHzの1周期が0.4ns
5KHzの1周期が200ns
150ns待つには375クロック必要
25MHzから10KHzを作成
32ビットのカウンタを用意
n(0) → 12.5MHz
n(1) → 6.25MHz
n(2) → 3.125MHz
n(3) → 1.5625MHz
n(4) → 780KHz
n(5) → 390KHz
n(6) → 97KHz
n(7) → 48KHz
n(8) → 24KHz
n(9) → 12KHZ
n(10) → 6KHz
https://gyazo.com/4e14fcb78dd309ac17a76560e25cf376
ESPer Developerで動かしてみる
まずは以下のサンプルプログラムを動かしてみる。
https://gyazo.com/8e54c994e3906ab345b4182f82272430
以下のピンを使用。
code:test.c
// You can use any (4 or) 5 pins
// hwspi hardcodes those pins, no need to redefine them
ハードSPIでは動かないので、ソフトSPIを利用する。
code:test.c
// Option 1: use any pins but a little slower
Adafruit_SSD1331 display = Adafruit_SSD1331(cs, dc, mosi, sclk, rst);
// Option 2: must use the hardware SPI pins
// (for UNO thats sclk = 13 and sid = 11) and pin 10 must be
// an output. This is much faster - also required if you want
// to use the microSD card (see the image drawing example)
// Adafruit_SSD1331 display = Adafruit_SSD1331(&SPI, cs, dc, rst);
それっぽいのが表示された。
https://gyazo.com/3f843298be4b3fe991f81b641f045fcf
ESPer Developerから自力で初期化してみる
Adafruit_SPITFT
Adafruit_SSD1331
clk→14
miso→12